package com.sky.annotation;

import com.sky.enumeration.OperationType;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 自定义切面注解AUTOFILL，用于标识某个方法需要进行功能字段填充
 * 自定义切面类AUTOFILLASPECT，统一拦截加入了AUTOFILL注解的方法，通过反射为公共字段赋值
 * 在Mapper方法上加入AUTOFILL注解
 * “@Target(ElementType.METHOD)”->该注解只能作用于函数上
 * "@Retention"：Java的元注解之一，用来解释注解的注解。这个注解用来修饰其他注解保留的生命周期（范围）,RetentionPolicy.RUNTIME：注解可以被JVM运行时访问到，通常可以结合反射来做一些事情。
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface AutoFill {
    //数据库操作类型：UPDATE，INSERT
    OperationType value();

}
